﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:vs="http://schemas.microsoft.com/Visual-Studio-Intellisense"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified"
           vs:helpNamespace="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <xs:element name="services" vs:help="services">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="service" vs:help="services/service">
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="endpoint" vs:help="services/service/endpoint">
                <xs:complexType>
                  <xs:choice minOccurs="0" maxOccurs="unbounded">
                    <xs:element name="headers" vs:help="services/service/endpoint/headers">
                      <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                          <xs:any namespace="##any" processContents="lax" />
                        </xs:choice>
                        <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
                        <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
                        <xs:attribute name="lockElements" type="xs:string" use="optional" />
                        <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
                        <xs:attribute name="lockItem" type="boolean_Type" use="optional" />
                        <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="identity" vs:help="services/service/endpoint/identity">
                      <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                          <xs:element name="userPrincipalName" vs:help="services/service/endpoint/identity/userPrincipalName">
                            <xs:complexType>
                              <xs:attribute name="value" use="optional" type="xs:string" />
                              <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
                              <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
                              <xs:attribute name="lockElements" type="xs:string" use="optional" />
                              <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
                              <xs:attribute name="lockItem" type="boolean_Type" use="optional" />
                              <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="servicePrincipalName" vs:help="services/service/endpoint/identity/servicePrincipalName">
                            <xs:complexType>
                              <xs:attribute name="value" use="optional" type="xs:string" />
                              <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
                              <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
                              <xs:attribute name="lockElements" type="xs:string" use="optional" />
                              <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
                              <xs:attribute name="lockItem" type="boolean_Type" use="optional" />
                              <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="dns" vs:help="services/service/endpoint/identity/dns">
                            <xs:complexType>
                              <xs:attribute name="value" use="optional" type="xs:string" />
                              <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
                              <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
                              <xs:attribute name="lockElements" type="xs:string" use="optional" />
                              <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
                              <xs:attribute name="lockItem" type="boolean_Type" use="optional" />
                              <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="rsa" vs:help="services/service/endpoint/identity/rsa">
                            <xs:complexType>
                              <xs:attribute name="value" use="optional" type="xs:string" />
                              <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
                              <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
                              <xs:attribute name="lockElements" type="xs:string" use="optional" />
                              <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
                              <xs:attribute name="lockItem" type="boolean_Type" use="optional" />
                              <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="certificate" vs:help="services/service/endpoint/identity/certificate">
                            <xs:complexType>
                              <xs:attribute name="encodedValue" use="optional" type="xs:string" />
                              <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
                              <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
                              <xs:attribute name="lockElements" type="xs:string" use="optional" />
                              <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
                              <xs:attribute name="lockItem" type="boolean_Type" use="optional" />
                              <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="certificateReference" vs:help="services/service/endpoint/identity/certificateReference">
                            <xs:complexType>
                              <xs:attribute name="storeName" use="optional">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:enumeration value="AddressBook" />
                                    <xs:enumeration value="AuthRoot" />
                                    <xs:enumeration value="CertificateAuthority" />
                                    <xs:enumeration value="Disallowed" />
                                    <xs:enumeration value="My" />
                                    <xs:enumeration value="Root" />
                                    <xs:enumeration value="TrustedPeople" />
                                    <xs:enumeration value="TrustedPublisher" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:attribute>
                              <xs:attribute name="storeLocation" use="optional">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:enumeration value="CurrentUser" />
                                    <xs:enumeration value="LocalMachine" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:attribute>
                              <xs:attribute name="x509FindType" use="optional">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:enumeration value="FindByThumbprint" />
                                    <xs:enumeration value="FindBySubjectName" />
                                    <xs:enumeration value="FindBySubjectDistinguishedName" />
                                    <xs:enumeration value="FindByIssuerName" />
                                    <xs:enumeration value="FindByIssuerDistinguishedName" />
                                    <xs:enumeration value="FindBySerialNumber" />
                                    <xs:enumeration value="FindByTimeValid" />
                                    <xs:enumeration value="FindByTimeNotYetValid" />
                                    <xs:enumeration value="FindByTimeExpired" />
                                    <xs:enumeration value="FindByTemplateName" />
                                    <xs:enumeration value="FindByApplicationPolicy" />
                                    <xs:enumeration value="FindByCertificatePolicy" />
                                    <xs:enumeration value="FindByExtension" />
                                    <xs:enumeration value="FindByKeyUsage" />
                                    <xs:enumeration value="FindBySubjectKeyIdentifier" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:attribute>
                              <xs:attribute name="findValue" use="optional" type="xs:string" />
                              <xs:attribute name="isChainIncluded" type="boolean_Type" use="optional" />
                              <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
                              <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
                              <xs:attribute name="lockElements" type="xs:string" use="optional" />
                              <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
                              <xs:attribute name="lockItem" type="boolean_Type" use="optional" />
                              <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                            </xs:complexType>
                          </xs:element>
                        </xs:choice>
                        <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
                        <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
                        <xs:attribute name="lockElements" type="xs:string" use="optional" />
                        <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
                        <xs:attribute name="lockItem" type="boolean_Type" use="optional" />
                        <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                      </xs:complexType>
                    </xs:element>
                  </xs:choice>
                  <xs:attribute name="address" type="xs:string" use="optional" />
                  <xs:attribute name="behaviorConfiguration" use="optional" type="xs:string" />
                  <xs:attribute name="binding" use="optional" type="xs:string" />
                  <xs:attribute name="bindingConfiguration" use="optional" type="xs:string" />
                  <xs:attribute name="name" use="optional" type="xs:string" />
                  <xs:attribute name="bindingName" use="optional" type="xs:string" />
                  <xs:attribute name="bindingNamespace" use="optional" type="xs:string" />
                  <xs:attribute name="contract" use="optional" type="xs:string" />
                  <xs:attribute name="listenUriMode" use="optional">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:enumeration value="Explicit" />
                        <xs:enumeration value="Unique" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute name="listenUri" type="xs:string" use="optional" />
                  <xs:attribute name="isSystemEndpoint" type="boolean_Type" use="optional" />
                  <xs:attribute name="kind" use="optional" type="xs:string" />
                  <xs:attribute name="endpointConfiguration" use="optional" type="xs:string" />
                  <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
                  <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
                  <xs:attribute name="lockElements" type="xs:string" use="optional" />
                  <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
                  <xs:attribute name="lockItem" type="boolean_Type" use="optional" />
                  <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                </xs:complexType>
              </xs:element>
              <xs:element name="remove" vs:help="services/service/remove">
                <xs:complexType>
                  <xs:attribute name="address" type="xs:string" use="optional" />
                  <xs:attribute name="binding" use="optional" type="xs:string" />
                  <xs:attribute name="bindingConfiguration" use="optional" type="xs:string" />
                  <xs:attribute name="bindingName" use="optional" type="xs:string" />
                  <xs:attribute name="bindingNamespace" use="optional" type="xs:string" />
                  <xs:attribute name="contract" use="optional" type="xs:string" />
                  <xs:attribute name="kind" use="optional" type="xs:string" />
                  <xs:attribute name="endpointConfiguration" use="optional" type="xs:string" />
                  <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                </xs:complexType>
              </xs:element>
              <xs:element name="clear" vs:help="services/service/clear">
                <xs:complexType>
                  <!--tag is empty-->
                  <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                </xs:complexType>
              </xs:element>
              <xs:element name="host" vs:help="services/service/host">
                <xs:complexType>
                  <xs:choice minOccurs="0" maxOccurs="unbounded">
                    <xs:element name="baseAddresses" vs:help="services/service/host/baseAddresses">
                      <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                          <xs:element name="add" vs:help="services/service/host/baseAddresses/add">
                            <xs:complexType>
                              <xs:attribute name="baseAddress" use="required">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:minLength value="1" />
                                    <xs:maxLength value="2147483647" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:attribute>
                              <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
                              <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
                              <xs:attribute name="lockElements" type="xs:string" use="optional" />
                              <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
                              <xs:attribute name="lockItem" type="boolean_Type" use="optional" />
                              <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                            </xs:complexType>
                          </xs:element>
                        </xs:choice>
                        <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="timeouts" vs:help="services/service/host/timeouts">
                      <xs:complexType>
                        <xs:attribute name="closeTimeout" use="optional">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:pattern value="([0-9.]+:){0,1}([0-9]+:){0,1}[0-9.]+" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:attribute>
                        <xs:attribute name="openTimeout" use="optional">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:pattern value="([0-9.]+:){0,1}([0-9]+:){0,1}[0-9.]+" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:attribute>
                        <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
                        <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
                        <xs:attribute name="lockElements" type="xs:string" use="optional" />
                        <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
                        <xs:attribute name="lockItem" type="boolean_Type" use="optional" />
                        <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                      </xs:complexType>
                    </xs:element>
                  </xs:choice>
                  <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
                  <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
                  <xs:attribute name="lockElements" type="xs:string" use="optional" />
                  <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
                  <xs:attribute name="lockItem" type="boolean_Type" use="optional" />
                  <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
                </xs:complexType>
              </xs:element>
            </xs:choice>
            <xs:attribute name="behaviorConfiguration" use="optional" type="xs:string" />
            <xs:attribute name="name" use="required">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:minLength value="1" />
                  <xs:maxLength value="2147483647" />
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
            <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
            <xs:attribute name="lockElements" type="xs:string" use="optional" />
            <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
            <xs:attribute name="lockItem" type="boolean_Type" use="optional" />
            <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
          </xs:complexType>
        </xs:element>
        <xs:element name="remove" vs:help="services/remove">
          <xs:complexType>
            <xs:attribute name="name" use="required">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:minLength value="1" />
                  <xs:maxLength value="2147483647" />
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
            <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
          </xs:complexType>
        </xs:element>
        <xs:element name="clear" vs:help="services/clear">
          <xs:complexType>
            <!--tag is empty-->
            <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
          </xs:complexType>
        </xs:element>
      </xs:choice>
      <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
      <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
      <xs:attribute name="lockElements" type="xs:string" use="optional" />
      <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
      <xs:attribute name="lockItem" type="boolean_Type" use="optional" />
      <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict" />
    </xs:complexType>
    
  </xs:element>
     <xs:simpleType name="Infinite_or_int">
        <xs:union memberTypes="Infinite xs:int" />
    </xs:simpleType>
    <xs:simpleType name="Infinite">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Infinite" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="small_boolean_Type">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="false" />
            <xs:enumeration value="true" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="boolean_Type">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="false" />
            <xs:enumeration value="true" />
            <xs:enumeration value="True" />
            <xs:enumeration value="False" />
        </xs:restriction>
    </xs:simpleType>
</xs:schema>